package NGUYENMINHHIEU.ARRAY_EXCERCISES.EXAMPLE03;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class MODELS {
    /***
     * 
     * @param lisStudent
     * @param shOpt = 0: Giảm dần theo điểm; shOpt = 1: Tăng dần theo điểm
     * @return
     */
    public List<STUDENT_ENTITY> SortOfItems(List<STUDENT_ENTITY> lisStudent) {
        // 1. Tường minh khai báo 1 biến mảng trung gian
        List<STUDENT_ENTITY> lisTemps = new ArrayList<STUDENT_ENTITY>();

        // 2. Sao chép dữ liệu mảng
        STUDENT_ENTITY objStudent = null;
        for (int i = 0; i < lisStudent.size(); i++) {
            objStudent = lisStudent.get(i);
            lisTemps.add(objStudent);
        }

        // 3. Định nghĩa thực thi sắp xếp
        Collections.sort(lisTemps, new Comparator<STUDENT_ENTITY>() {
            @Override
            public int compare(STUDENT_ENTITY objA, STUDENT_ENTITY objB) {
                if (objA.getMark() > objB.getMark())
                    return -1;
                else if (objA.getMark() == objB.getMark())
                    return 0;
                else
                    return 1;
            }
        });
        return lisTemps;
    }
}
